

    /*
     * The only difference between #type and #is
     * is that #type will return true for all instances that satisfy
     * 
     * #type means instanceof
     * #is means constructed by
     * 
     */

    function A () {;};
    
    B.inherits(A);
    function B () {;};
    
    var a= new A
    ,   b= new B;
    
    
    
    
    alert(A.type(a)); // true    - a was constructed by A
    alert(A.type(b)); // true    - b is a subclass of B
    alert(B.type(a)); // false   - a is not a type of B
    alert(B.type(b)); // true    - b is a type of B
    
    alert(A.is(a)); // true - a was constructed by A
    alert(B.is(a)); // false - a was not constructed by B, though it is an instanceof A
